#ifndef SIPDLGSESSIONBASE_HPP__
#define SIPDLGSESSIONBASE_HPP__

#include "SipGDServiceConfigure.hpp"

#include "SipSessionBase.hpp"
#include "SipDialog.hpp"


namespace wtsip{

class WTGD_SIPSRV_PUBLIC CSipDlgSessionBase: 
    virtual public CSipSessionBase,
    virtual public CSipDlgHandle
{
public:

    CSipDlgSessionBase(CSipGDService& srv, CSipDialogBase& dlg);

    virtual ~CSipDlgSessionBase();

    virtual bool replyOK(const resip::Data& id, std::string& body);

    virtual bool replyFail(const resip::Data& id, CSipSessionBase::EFailReason r);

    virtual bool replyTrying(const resip::Data& id);

    virtual bool reply(const resip::Data& id, std::string& body, CSipSessionBase::EFailReason r);

    virtual bool stop();

    //std::string getRemoteIP();

protected:

    virtual bool onDestroy();    

};


}//namespace

#endif

